// 引入 stream 模块的 Readable 类
const { Readable } = require('stream');

// 自定义 MyReadable 构造函数，继承自 Readable
class MyReadable extends Readable {
  constructor() {
    super();
    // 初始化当前要输出的字符为 'a'
    this.currentChar = 'a';
  }

  // 实现 _read 方法，这是 Readable 流必须实现的方法
  _read() {
    // 如果当前字符还没到 'z' 之后
    if (this.currentChar.charCodeAt(0) <= 'z'.charCodeAt(0)) {
      // 将当前字符放入流中
      this.push(this.currentChar);
      // 当前字符后移一位
      this.currentChar = String.fromCharCode(this.currentChar.charCodeAt(0) + 1);
    } else {
      // 所有字符输出完毕，结束流
      this.push(null);
    }
  }
}

// 创建 MyReadable 实例
const myReadable = new MyReadable();

// 将流中的数据输出到标准输出（process.stdout）
myReadable.pipe(process.stdout);